// 连续赋值
let a = {n: 1}
let b = a;

a.x = a = {n: 2}

console.log(a.x)  // undefined
// console.log(a)    //{n: 2}
console.log(b.x)  //{n: 2}
// console.log(b)    // {n: 1, x: {n: 2}}

/**
 * 解题思路：
 *  起初，a 和 b 都指向同一个内存地址 {n: 1}
 *  其次，考的是优先级， . 的优先级高于 = , 所以，可以分解为：
 *  a.x = undefined （即 a -> {n: 1, x: undefined }）, a = {n: 2} （a 重新赋值，指向了新的内存地址）
 *  b.x， b 和原来的a 指向同一个的内存地址，a.x 时，原内存也添加了x 属性，在进行赋值操作时，b.x = {n: 2}
 *  
 * 省流：
 * a.x = undefined
 * b.x  === a.x   // true
 * a = {n: 2}
 * b.x = a
 * */ 